#!/bin/bash
###
# @Author: Xusen Guo
# @Email: xusen.guo@waytous.com
# @Date: 2023-03-13 14:09:32
# @LastEditors: Xusen Guo
# @LastEditTime: 2023-03-13 15:26:16
###

# 会话名
SESSION=helms
WINDOW=qt_show

# 判断会话是否存在，如果会话不存在，则创建
has_session=$(tmux has-session -t $SESSION 2>/dev/null)

if [ "$?" -eq "1" ]; then
    echo "会话 $SESSION 不存在, 开启会话"
    tmux new-session -s $SESSION -n "default" -d
fi

# 判断窗口是否存在，如果窗口不存在，则创建
has_window=$(tmux has-session -t $SESSION:$WINDOW 2>/dev/null)
if [ "$?" -eq "1" ]; then
    # echo "窗口 $SESSION:$WINDOW 不存在, 开启窗口"
    tmux new-window -t $SESSION -n $WINDOW

    has_default=$(tmux has-session -t $SESSION:default 2>/dev/null)
    if [ "$?" -eq "0" ]; then
        tmux kill-window -t $SESSION:default
    fi

else
    if [[ "$1" == "-q" || "$1" == "--quit" ]]; then
        # 关闭会话
        tmux kill-window -t $SESSION:$WINDOW
        echo " 窗口 $SESSION:$WINDOW 已经关闭"
        exit 0
    else
        echo "窗口 $SESSION:$WINDOW 已经存在"
        exit 0
    fi
fi

set -e
set -u

tmux set-option -g mouse on

# 选择窗口0, 并分割
tmux select-window -t $SESSION:$WINDOW
tmux split-window -p 50 -v -t $SESSION:$WINDOW.0

# 判断是否已经启动了 roscore
roscore_is_running=$(ps -ef | grep roscore | grep -v grep | wc -l)
if [ "$roscore_is_running" -eq "0" ]; then
    echo "启动 roscore"
    tmux send-key -t $SESSION:$WINDOW.0 'roscore' C-m
    sleep 0.2
fi

echo "启动 qt_show"
tmux send-key -t $SESSION:$WINDOW.1 'ldconfig' C-m
tmux send-key -t $SESSION:$WINDOW.1 '/usr/local/roadside_qt/bin/roadside-qt' C-m
